package net.hn.hnms.biz.shipped.domain;

import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;

import org.hibernate.validator.constraints.Length;

import javax.validation.constraints.DecimalMin;
import javax.validation.constraints.Digits;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;

import javax.persistence.Table;
import java.io.Serializable;
import java.math.BigDecimal;

/**
 * Author: ly
 * 发运统计表
 */
@Data
@NoArgsConstructor
@ExcelIgnoreUnannotated
@EqualsAndHashCode(callSuper = false)
@Table(name = "transport_delivery_statistics")
public class TransportDeliveryStatistics extends BaseModel implements Serializable {
    @ApiModelProperty(value = "主键")
    @TableId(type = IdType.ASSIGN_UUID)
    private String statisticsId;

    @ApiModelProperty(value = "煤种名称")
    @Length(max = 255, message = "煤种名称长度不能超过255个字符")
    @NotBlank(message = "煤种名称不能为空")
    private String coalName;

    @ApiModelProperty(value = "矿名称")
    @Length(max = 100, message = "矿名称长度不能超过100个字符")
    @NotBlank(message = "矿名称不能为空")
    @ExcelProperty("煤矿名称")
    private String mineName;

    @ApiModelProperty(value = "部门名称")
    @Length(max = 100, message = "部门名称长度不能超过100个字符")
    @NotBlank(message = "部门名称不能为空")
    @ExcelProperty("销售部门")
    private String deptName;

    @ApiModelProperty(value = "发货净重")
    @Digits(integer = 0, fraction = 2, message = "发货净重格式不正确")
    @DecimalMin(value = "0.00", message = "发货净重格式不正确")
    @NotNull(message = "发货净重不能为空")
    private BigDecimal sendWeight;

    @ApiModelProperty(value = "收货过皮")
    @Digits(integer = 0, fraction = 2, message = "收货过皮格式不正确")
    @DecimalMin(value = "0.00", message = "收货过皮格式不正确")
    @NotNull(message = "收货过皮不能为空")
    private BigDecimal receiveNum;

    @ApiModelProperty(value = "收货毛重")
    @Digits(integer = 0, fraction = 2, message = "收货毛重格式不正确")
    @DecimalMin(value = "0.00", message = "收货毛重格式不正确")
    @NotNull(message = "收货毛重不能为空")
    private BigDecimal receiveGrossNum;

    @ApiModelProperty(value = "收货净重")
    @Digits(integer = 0, fraction = 2, message = "收货净重格式不正确")
    @DecimalMin(value = "0.00", message = "收货净重格式不正确")
    @NotNull(message = "收货净重不能为空")
    private BigDecimal receiveWeight;

    @ApiModelProperty(value = "涨吨")
    @Digits(integer = 0, fraction = 2, message = "涨吨格式不正确")
    @DecimalMin(value = "0.00", message = "涨吨格式不正确")
    @NotNull(message = "涨吨不能为空")
    @ExcelProperty("涨吨合计")
    private BigDecimal sumRise;

    @ApiModelProperty(value = "亏吨")
    @Digits(integer = 0, fraction = 2, message = "亏吨格式不正确")
    @DecimalMin(value = "0.00", message = "亏吨格式不正确")
    @NotNull(message = "亏吨不能为空")
    @ExcelProperty("亏吨合计")
    private BigDecimal sumLoss;

    @ApiModelProperty(value = "业务类型")
    @Length(max = 10, message = "业务类型长度不能超过10个字符")
    @NotBlank(message = "业务类型不能为空")
    @ExcelProperty("业务类型")
    private String type;

    @ApiModelProperty(value = "收货单位名称")
    @Length(max = 100, message = "收货单位名称长度不能超过100个字符")
    @NotBlank(message = "收货单位名称不能为空")
    private String receiveCustName;

    @ApiModelProperty(value = "提煤单位名称")
    @ExcelProperty("提煤单位")
    private String voucherCompanyName;

    @ApiModelProperty(value = "矿发车数")
    @ExcelProperty("矿发车数")
    private int coalOutCar;

    @ApiModelProperty(value = "矿发吨数")
    @ExcelProperty("矿发吨数")
    private int coalOutTon;

    @ApiModelProperty(value = "收货车数")
    @ExcelProperty("收货车数")
    private int receivedCar;

    @ApiModelProperty(value = "收货过重车数")
    @ExcelProperty("收货过重车数")
    private int receivedOverweightCar;

    @ApiModelProperty(value = "收货吨数")
    @ExcelProperty("收货吨数")
    private BigDecimal receivedTon;

    @ApiModelProperty(value = "客户编码")
    @ExcelProperty("客户编码")
    private String custId;

    @ApiModelProperty(value = "客户名称")
    @ExcelProperty("客户名称")
    private String custName;

    @ApiModelProperty(value = "是否是营业部门：true是、false不是")
    @ExcelProperty("是否是营业部门：true是、false不是")
    private String isRegDepartment;

}









